package com.ksm.calcul;

import java.util.ArrayList;
import java.util.List;

public class CalculIR {

	private List<BaremeEchelon> baremesIR = new ArrayList<BaremeEchelon>();
	private Integer parts = 1;
	private Double tauxAbattementFraisPro = 10.0;

	public CalculIR() {
		baremesIR.add(new BaremeEchelon(0.0, 0, 5963));
		baremesIR.add(new BaremeEchelon(5.5, 5963, 11896));
		baremesIR.add(new BaremeEchelon(14.0, 11896, 26420));
		baremesIR.add(new BaremeEchelon(30.0, 26420, 70830));
		baremesIR.add(new BaremeEchelon(41.0, 70830, 150000));

	}

	public Double calcul(Double revenu) {

		Double impots = 0.0;
		if (revenu != null) {
			revenu = revenu * ((100 - tauxAbattementFraisPro) / 100);
			for (BaremeEchelon bareme : baremesIR) {
				if (revenu > bareme.getMontantMin()) {

					if (revenu > bareme.getMontantMax()) {
						impots = impots + ((bareme.getMontantMax() - bareme.getMontantMin()) * bareme.getTaux());
					} else {
						impots = impots + ((revenu - bareme.getMontantMin()) * bareme.getTaux());
					}
				}
			}

		}

		return impots;

	}
}
